<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script src="./axios/axios.min.js"></script>
    <script>
        // 拦截器 

        // 响应拦截器 
        // 数据本来是 [[[a,b,c]]]   给到浏览器  
        // 在到达浏览器以前   拦截下来 处理成 [a,b,c] 然后再给到浏览器 

        // axios实例.interceptors.response.use(function(res){
        //      res 就是本来服务器响应给浏览器的数据 
        //      最后注意将数据返回 如果不返回 就到达不了浏览器了 
        // })


        // 请求拦截器  
        // 我们有100个请求  /test/one  /test/two  /test/three .. /test/hundred

        // 我只有  one   ten   twenty 这三个请求 需要额外带一些东西  
        // 那我们需要 到达服务器之前 拦住这三个请求 携带上东西  再到服务器  


        // 我们的一些网站   有权限才可以看 没权限不能看 
        // 我们需要在访问之前 拦住  判断是否有权限  

        // axios实例.interceptors.request.use(function(config){
        //      config 就是本次请求所有的相关配置信息 
        //      最后也要返回  否则 堵住 到达不了服务器了  
        // })



        // 响应拦截器 
         
        // 原来axios返回给 浏览器的数据好多层  现在想 把数据处理好以后再给到浏览器 

        // 1.导入axios
        // 2. 创建实例
        // 3. 创建响应拦截器
        // 4. 利用实例发送请求 


        const my_axios = axios.create({
            baseURL:'http://localhost:8080'
        })

        // 创建一个响应拦截器
        // my_axios.interceptors.response.use(function(res){
        //     console.log('拦截的数据',res);

        //     if(res.data.code === 0){
        //         alert(res.data.message)
        //     }
        //    return res.data
        // })


        // my_axios.get('/test/third',{params:{name:'zhangsan',age:26}}).then(data=>{
        //     console.log('haha',data);
        // })


        // 接口文档 很多请求   我们只想让 /test/first  /test/third /user/login
        // 携带一些数据到服务器 

        const arr = ['/test/first','/test/third','/user/login'];

        my_axios.interceptors.request.use(function(config){
            console.log('拦住请求过去的东西',config);

            // console.log(config.url);
            // 只要请求地址在arr范围内 

            if(arr.includes(config.url)){
                config.headers.a = 999;
                config.headers.b = 666;

            }

            return config; // 这里一定要返回 否则到达不了服务器 

        })


        my_axios.get('/test/third',{params:{name:'zhangsan',age:26}}).then(data=>{
            console.log('haha',data);
        })



    </script>
</body>
</html>